﻿/*===================================================
* CLR版本  : 4.0.30319.42000 
* 类名称   : EventProxy
* 文 件 名 : EventProxy 
* 类描述   :
* 创建人   : oream
* 创建时间 : 2018/2/9 23:23:35
* 修改人   : 
* 修改时间 :
* 版本： @version 1.0
=====================================================*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Hotfix
{
  public class EventProxy :IEvent
  {
    public Action<List<object>> action;
    public List<object> param = new List<object>();

    public EventProxy(Action<List<object>> action)
    {
      this.action = action;
    }

    public void Handle()
    {
      this.param.Clear();
      this.action?.Invoke(this.param);
    }

    public void Handle(object obj)
    {
      this.param.Clear();
      this.param.Add(obj);
      this.action?.Invoke(this.param);
    }

    public void Handle(object a, object b)
    {
      this.param.Clear();
      this.param.Add(a);
      this.param.Add(b);
      this.action?.Invoke(this.param);
    }

    public void Handle(object a, object b, object c)
    {
      this.param.Clear();
      this.param.Add(a);
      this.param.Add(b);
      this.param.Add(c);
      this.action.Invoke(this.param);
    }

  }
}
